Unified Parallel C

Unified Parallel C (UPC)
ПарадигмаПаралельна, імперативна (процедурна), структурна
Дата появи1999
ТворціUPC Consortium
Останній реліз2.12.2/2011-5-18
Система типізаціїСтатична
Основні реалізаціїGNU UPC, IBM XL UPC Compilers, HP UPC, Berkeley UPC, Michigan Tech MuPC, Cray UPC
Під впливом відC, AC,Split-C, Parallel C Preprocessor
Операційна системаКрос-платформена
Вебсайтupc.gwu.edu

Unified Parallel C (UPC) - розширення мови програмування С, призначене для високопродуктивних обчислень на масштабних паралельних комп'ютерах, в тому числі на SMP/NUMA системах з загальною пам'яттю (єдиним адресним простором) і з розподіленою пам'яттю (наприклад, на кластерах). Програмісту надається доступ до всього глобального розділеного адресного простору (PGAS), збережені в ньому змінні можуть читатися і змінюватися будь-яким процесором. При цьому кожне значення зберігається у фізичній пам'яті одного з процесорів. UPC використовує модель SPMD (Single Program Multiple Data) в якій ступінь паралелізму фіксується при запуску програми, зазвичай на рівні один потік виконання на ядро ​​процесора.

Для вираження паралелізму UPC додає до ISO C 99 конструкції:

  • Явну паралельну модель виконання;
  • Загальний (поділений) адресний простір;
  • Примітиви синхронізації і модель консистентності пам'яті;
  • Примітиви управління пам'яттю.

На UPC значно вплинули три більш ранніх паралельних розширення: ISO C 99: AC, Split-C, і Parallel C Preprocessor (PCP). UPC не є їхньою надбудовою, а скоріше спробою об'єднати кращі їх сторони. UPC комбінує зручність програмування в парадигмі загальної пам'яті, рівень контролю за розподілом даних і продуктивності парадигми передачі повідомлень. Підтримується на різних HPC платформах.

UPC доволі простий в програмуванні, особливо для С-програмістів та порівнянні с іншими парадигмами паралельного програмування (MPI, Charm++). Продуктивність UPC схожа з MPI.

Вручну оптимізований код с блоковими пересилками даних, все ж значно простіше, ніж MPI. Мова і середовище виконання (runtime) беруть на себе рутинну роботу по комунікації.


From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Tubidy